// index.js
// 获取应用实例
const app = getApp().globalData;
const http = require("../../utils/https");
const wxAPI = require("../../libs/wxAPI")
const url = app.baseUrl + "index.php";

let req = true;
Page({
  data: {
    mvData: "",
    cid: 1, //当前选中项的类别id,
    tabTitle: ["热映", "待映", "经典"],
    cityName: app.cityName
  },

  /**页面加载执行 */
  onLoad() {
    http.loadData(url, "GET", {
      cid: 1,
      offset: 0
    }).then((res) => {
      this.setData({
        mvData: res.data
      });
    });
    // 逆地址解析（坐标位置描述，坐标转地址）
    app.qqmapsdk.reverseGeocoder({
      success: (res) => { //成功后的回调
        let cName = res.result.address_component.city;
        app.cityName = cName;
        this.setData({
          cityName: app.cityName
        });

      },
      fail: (res) => { //失败后的回调
        console.log(res);
      },
      complete: (res) => { //完成后执行
        console.log("自动定位结束");
      }
    })

  },
  onShow() {
    this.setData({
      cityName: app.cityName
    });
  },
  // 选项卡切换
  tabnav(e) {
    req = true; //控制页面触底刷新
    let tid = e.target.dataset.id;
    let that = this;
    this.setData({
      cid: tid
    })
    // 先去缓存找，看看有没有存过当前类别的数据
    // 如果有直接拿来用，没有再发请求
    wxAPI.getStorage(tid + "").then(res => {
      that.setData({
        mvData: res.data
      });
    }).catch(res => {
      http.loadData(url, "GET", {
        cid: tid,
        offset: 0
      }).then((res) => {
        that.setData({
          mvData: res.data
        })
        // 将数据存入storage
        wxAPI.setStorage(tid, res.data)
      })
    })
  },
  // 切换城市
  tapChooseCity() {
    wx.navigateTo({
      url: '/pages/citylist/citylist',
    })
  },
  // 下拉刷新
  onPullDownRefresh: function () {
    let tid = this.data.cid;
    let that = this;
    console.log("---下拉刷新---");
    wx.showNavigationBarLoading(); //在标题栏中显示加载中的转圈效果
    //下拉刷新，清除缓存
    wx.removeStorage({
      key: tid + "",
      success(res) {
        console.log("清除缓存类别" + tid + "成功！")
        http.loadData(url, "GET", {
          cid: tid,
          offset: 0
        }).then((res) => {
          // 将数据存入storage
          that.setStorage(tid, res.data);
          that.setData({
            mvData: res.data
          })
        }).finally(() => {
          // complete
          wx.hideNavigationBarLoading(); // 完成数据操作后停止标题栏中的加载中的效果
          wx.stopPullDownRefresh(); // 停止下拉刷新过程
          console.log("------停止刷新------");
        })
      },
      fail(res) {
        console.log("清除缓存类别" + tid + "失败！")
      }
    })
  },

  // 触底刷新
  onReachBottom: function () {
    if (!req) {
      wxAPI.toast("亲！到底了", "error")
      return;
    }
    console.log("----触底加载-----");
    wx.showNavigationBarLoading(); //在标题栏中显示加载中的转圈效果
    http.loadData(url, "GET", {
      cid: this.data.cid,
      offset: this.data.mvData.length
    }).then((res) => {
      if (res.data.length === 0) {
        wxAPI.toast("亲！到底了", "error");
        req = !req;
        return;
      }
      this.setData({
        mvData: this.data.mvData.concat(res.data)
        // 不适合用push（...arr）参数结构，push返回的是新的数组长度
      })
    }).finally(() => {
      wx.hideNavigationBarLoading(); // 完成数据操作后停止标题栏中的加载中的效果
      wx.stopPullDownRefresh(); // 停止下拉刷新过程
      console.log("------触底加载结束------");
    })
  }
})